﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using M2B.GestionEntretiens.Contracts;
using M2B.GestionEntretiens.POCOS;

namespace M2B.GestionEntretiens.Models
{
    public class EntretiensModel
    {
         #region Properties
        /// <summary>
        /// Entretiens Service
        /// </summary>
        private IEntretiensService _entretiensService;
        /// <summary>
        /// La liste des Entretiens
        /// </summary>
        public IEnumerable<Entretien> Entretiens { get {
            if (_entretiensService == null) return null;
            var entretiens =  _entretiensService.GetEntretiens();
            return entretiens;
        } }

        #endregion

        #region Constructeurs

        public EntretiensModel(IEntretiensService entretiensService)
        {
            _entretiensService = entretiensService;
           
        }
        #endregion
        #region Méthodes
        /// <summary>
        /// Récupération d'un Entretien
        /// </summary>
        /// <param name="entretienId">Id</param>
        /// <returns></returns>
        public Entretien GetEntretien(int entretienId)
        {
            return Entretiens.FirstOrDefault(el => el.EntretienId == entretienId);
        }
        #endregion
        /// <summary>
        /// Ajouter un Entretien
        /// </summary>
        /// <param name="entretien">Entretien</param>
        public void CreateEntretien(Entretien entretien)
        {
            _entretiensService.AddEntretien(entretien);
        }
        /// <summary>
        /// Supprimer un Entretien
        /// </summary>
        /// <param name="entretienId">Id</param>
        public void DeleteEntretien(int entretienId)
        {
            _entretiensService.DeleteEntretien(entretienId);
        }
        /// <summary>
        /// Mise à jour d'un entretien
        /// </summary>
        /// <param name="entretien">Entretien</param>
        public void Update(Entretien entretien)
        {
            _entretiensService.UpdateEntretien(entretien);
        }
        
    }
}